<script>
	export default {
		onLaunch: function() {
			console.log('App Launch')
			// 在应用启动时初始化全局错误处理器
			this.initGlobalErrorHandler()
		},
		onShow: function() {
			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		},
		methods: {
			// 初始化全局错误处理器，专门处理微信小程序access_token问题
			initGlobalErrorHandler() {
				// 存储原始的uni.chooseImage方法
				const originalChooseImage = uni.chooseImage
				const originalPreviewImage = uni.previewImage
				
				// 重写uni.chooseImage方法，添加统一的错误处理
				uni.chooseImage = (options) => {
					const originalFail = options.fail || function() {}
					options.fail = (err) => {
						console.error('图片选择失败:', err)
						// 处理access_token缺失错误
						if (err.errMsg && err.errMsg.includes('access_token missing')) {
							uni.showToast({
								title: '图片选择失败，请检查网络或重新登录',
								icon: 'none',
								duration: 2000
							})
							// 在实际项目中，这里应该调用接口获取新的access_token
						} else {
							// 调用原始的fail回调
							originalFail(err)
						}
					}
					return originalChooseImage(options)
				}
				
				// 重写uni.previewImage方法，添加统一的错误处理
				uni.previewImage = (options) => {
					const originalFail = options.fail || function() {}
					options.fail = (err) => {
						console.error('图片预览失败:', err)
						// 处理access_token缺失错误
						if (err.errMsg && err.errMsg.includes('access_token missing')) {
							uni.showToast({
								title: '图片预览失败，请检查网络或重新登录',
								icon: 'none',
								duration: 2000
							})
						} else {
							// 调用原始的fail回调
							originalFail(err)
						}
					}
					return originalPreviewImage(options)
				}
			}
		}
	}
</script>

<style>
	/*每个页面公共css */
</style>
